package com.foton.boot;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

import javax.xml.ws.Dispatch;

/**
 * @Author RenPu
 * @Date 2023/3/28 9:46
 * @Version 1.0
 * @Description: 手动模拟实现Spring boot核心流程
 **/
public class FotonApplication {

//    @Value("${server.port}")
//    private int port;

    public static void run() {

        //疑问点
        // 没有借助外部tomcat启动的应用为C/S模式 例如spring boot应用启动为main函数启动，为C/S模式
        //借助到外置Tomcat的应用为B/S模式

        //1:整合spring mvc
        //核心配置类
        //ContextLoaderListen：用于监听解析 application.xml里的bean配置
        //Dispatch 拦截器


        //2:内置tomcat
        //3:去除xml

        try {
            Tomcat tomcat = new Tomcat();
            tomcat.setPort(9090);
            //声明是一个web项目，类似我们将项目打包放在tomcat的webapp文件夹中,/boot为访问的路径
            tomcat.addWebapp("/boot1","D://Idea_WorkSpace//spring-cloud-imooc-demo//springboot//fonton-boot");
            //一直等待执行
            tomcat.start();
            tomcat.getServer().await();
        } catch (LifecycleException e) {
            e.printStackTrace();
        }


    }


}
